package com.hns.tool.task;

/**
 * 后台任务接口
 * @author:wucx
 * @email:zhuangcaijin@126.com
 * @version Revision 2.0.0
 */
public interface BackendTask {

	/**
	 * 任务的初始化或重置动作
	 * @author:wucx
	 * @email:zhuangcaijin@126.com
	 */
	void reset();
	
	/**
	 * 任务的执行动作
	 * @author:wucx
	 * @email:zhuangcaijin@126.com
	 */
	void run();
	
	/**
	 * 任务的收尾动作
	 * @author:wucx
	 * @email:zhuangcaijin@126.com
	 */
	void end();
	
	/**
	 * 任务执行的优先级
	 * @param p 取值：1-5； 1为最高级，最优先执行
	 * @author:wucx
	 * @email:zhuangcaijin@126.com
	 */
	void priority(int p);
	
	/**
	 * 设置任务执行的超时时间，默认允许运行300秒
	 * @param second 时间（秒）
	 * @author:wucx
	 * @email:zhuangcaijin@126.com
	 */
	void timeout(int second);
	
	/**
	 * 标识符， 唯一性标识
	 * 防止短时间重复添加同一个任务
	 * @return 标识符字符串
	 * @author:wucx
	 * @email:zhuangcaijin@126.com
	 */
	String identifier();
	
	/**
	 * 任务的结果
	 * @return 返回执行的结果
	 * @author:wucx
	 * @email:zhuangcaijin@126.com
	 */
	Object result();
}
